home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / internet / irc_i_dodatki / eggdrop / eggdrop11.lha / README < prev    next >
Text File  |  1997-01-15  |  18KB  |  359 lines

  1.                        _
  2.   ___   __ _  __ _  __| |_ __  ___  _ __
  3.  / _ \ / _` |/ _` |/ _` | '__|/ _ \| '_ \
  4. |  __/| (_| | (_| | (_| | |  | (_) | |_) |
  5.  \___| \__, |\__, |\__,_|_|   \___/| .__/
  6.        |___/ |___/                 |_|     v1.1 BETA
  7.  
  8. Please at least SKIM this document before asking questions.
  9.  
  10.  
  11. (1) WHAT IS EGGDROP?
  12.  
  13.     Eggdrop is an IRC bot, written in C.  If you don't know what IRC is,
  14.     this is probably not whatever you're looking for!  Eggdrop, being a
  15.     bot, sits on a channel and takes protective measures: to keep the
  16.     channel from being taken over (in the few ways that anything CAN),
  17.     to recognize banished users or sites and reject them, to recognize
  18.     priveledged users and let them gain ops, etc.
  19.  
  20.     One of the more unique features of eggdrop is its "party line",
  21.     accessable via DCC chat, which allows you to talk to other people
  22.     lag-free.  Consider it a multi-way DCC chat, or a miniature IRC
  23.     (complete with channels).  You can link up with other bots and
  24.     expand the party line until it actually becomes something very much
  25.     like IRC, in fact.  
  26.  
  27.     Eggdrop is always being improved and adjusted because the author
  28.     is never really satisfied with it.  In fact, it existed for several
  29.     years as v0.7 - v0.9 before finally going 1.0.  A valiant effort has 
  30.     been made to chase down and destroy bugs.  It is definitely nowhere
  31.     near as buggy as the ircII client.  Crashes should be rare and
  32.     surprising (but aren't they always? [surprising anyway]).
  33.  
  34.     This README file contains information about how to get eggdrop, how to
  35.     quickly compile the bot, what you may need to do when upgrading from 
  36.     older versions, a list of frequently asked questions about compiling,
  37.     how to set up a crontab, some boring legal stuff, info about the mailing
  38.     list (a great place to ask questions), and a complaint/explanation about
  39.     the lack of documentation.
  40.  
  41.     The preliminary documentation is in "eggdrop.doc" and is intended to be
  42.     read after you have eggdrop compiled and set up.  It's changing all the
  43.     time and getting new sections added.  If you'd like to write a section
  44.     or just indicate some part that needs improving, please do!
  45.  
  46.  
  47. (2) HOW TO GET EGGDROP
  48.  
  49.     Before you can compile eggdrop, you need to have Tcl installed on
  50.     your system.  Most systems should have Tcl on them by now -- you
  51.     can check by trying the command "tclsh".  If it works, you will be
  52.     given a "%" prompt, and you can type "exit" to exit the program.
  53.     That means Tcl is on your system.  If tclsh doesn't load, then Tcl
  54.     probably isn't on your system, and you will need to ftp it.  The
  55.     best ftp site is:
  56.        ftp://ftp.sunlabs.com/pub/tcl
  57.     The current version as of this writing is 7.5.  Right now, eggdrop
  58.     has only minimal support for the new 7.5 features and I haven't
  59.     tested them, but feedback is welcome.
  60.  
  61.     Tcl comes with the Slackware distribution of Linux.  HOWEVER, the
  62.     one that comes on Slackware 3.0 is goofed up and you'll have to
  63.     re-install it for yourself to get it working.
  64.  
  65.     The eggdrop code is available via anonymous FTP at:
  66.        ftp://ftp.sodre.net/pub/eggdrop/
  67.        ftp://ftp.crafti.com.au/
  68.        ftp://ftp.eagle.ovik.se/pub/unix/irc/ftp_sodre_net/
  69.        ftp://ftp.ntis.com/pub/irc/DeadelviS/bot/c/eggdrop/
  70.  
  71.     There is also a web page that is updated pretty frequently, and
  72.     always has links to the latest few versions, as well as to botnets
  73.     and other sources of info:
  74.        http://www.valuserve.com/~robey/eggdrop/
  75.        http://www.sodre.net/eggdrop/
  76.  
  77.     There are several eggdrop Tcl script libraries out there.  I have
  78.     pointers to a few on the web page.
  79.  
  80.  
  81. (3) QUICK STARTUP
  82.  
  83.     Eggdrop, while not covered under the GPL (for various reasons), does
  84.     use the GNU autoconfigure scripts, to make things easier.
  85.  
  86.     1. Type './configure' from the eggdrop directory.  That script will
  87.        determine how your system is set up, and figure out how to compile
  88.        eggdrop (I hope).  It will also try to find Tcl, which is required
  89.        to compile.
  90.  
  91.     2. Edit 'src/eggdrop.h' to your liking if you're the hacker type.
  92.        (THIS STEP IS OPTIONAL.)
  93.  
  94.     3. Type 'make' from the eggdrop directory.  If you want your bot to run
  95.        from it's own directory (highly recommended), type 'putegg <dir>' to
  96.        copy the main files there.
  97.  
  98.     4. Edit 'lamestbot' (a sample script) and rename it to something you can
  99.        remember (like "mybot").  Move it to your bot's directory.
  100.  
  101.     5. Start the bot with the "-m" option to create a user file, ie
  102.        'eggdrop -m lamestbot'.
  103.  
  104.     6. When starting the bot in the future, drop the "-m".  If you compiled
  105.        with Tcl and have edited your bot script correctly, you can type:
  106.          chmod u+x <my-bot-script-name>
  107.        and from then on, you will be able to run your bot directly from the
  108.        script.  So you can just type "lamestbot" from your shell prompt to
  109.        start up your bot.  For this to work, the top line of your script MUST
  110.        contain the correct path to eggdrop.
  111.        (Please don't call your bot "lamestbot".  It's, well...  lame.)
  112.  
  113.     7. It's advisable to run your bot via crontab so that it will automatic-
  114.        ally restart if the machine goes down or (heaven forfend) the bot
  115.        should crash.  Look at the file 'botchk' for a great start with cron-
  116.        tabbing the bot.
  117.  
  118.  
  119. (4) UPGRADING
  120.  
  121.     There are many major changes between v0.9 and v1.0 so PAY ATTENTION
  122.     to this part if you have a v0.9 bot already.  If you're just starting
  123.     out, you can skip this section.
  124.  
  125.     to 1.0g:
  126.     *  If you run sharebots, you will need to upgrade them all at the
  127.        same time because of the new userfile format.  Older bots will
  128.        be able to link in, but will not get or send a userfile.
  129.  
  130.     from 0.9 to 1.0:
  131.     *  You will have to make a new config file.  Because eggdrop is now
  132.        multi-channel, whole sections of the config file have changed --
  133.        particularly the part where you define the channels.  My advice is
  134.        to just start over from the 'lamestbot' example config, and use
  135.        your old config as a guide.  It might be a pain, but it should
  136.        only take 5-10 minutes.
  137.     *  non-Tcl bots aren't supported any more: upgrade or stick with 0.9
  138.     *  many commands have changed somewhat -- for example, commands like
  139.        '.say' and '.kickban' now operate on the user's current console
  140.        channel (which can be changed with '.console')
  141.     *  virtually every Tcl script for 0.9 will have to be changed to work
  142.        with 1.0 -- many scripts already have 1.0 versions as of this
  143.        writing, and the file "tcl-commands.doc" tells how to convert your
  144.        own scripts
  145.     *  the +a and +h flags for bots no longer have their old meanings; the
  146.        new meanings are:
  147.           +h  preferred (hub) link -- these bots will be tried first until
  148.               one +h is directly linked in, at which point no more auto-
  149.               connects are tried.  if a +h bot suddenly becomes available
  150.               when none were available before, all interfering links are
  151.               DROPPED, and the connection to the +h bot is made
  152.           +a  alternate link -- if no hub bots can be linked, then these
  153.               bots will be tried until at least one is linked in.  they're
  154.               just an alternate connection, and could be dropped once a +h
  155.               link can be made
  156.        the new meanings for the flags make botnet connecting more reliable,
  157.        and make it easier to structure a "default" layout that will maintain
  158.        itself even if nobody's around.
  159.     *  sharebots: be sure to upgrade all sharebots at the same time -- 1.0
  160.        bots will be unable to transfer userfiles with 0.9 bots (the userlist
  161.        is sent through DCC now, for speed)
  162.     *  helpbot support and 'ntalk.irc' support were removed, since both were
  163.        effectively useless any more  (a new 'ntalk.irc' has been included
  164.        with this distribution, which does not require bot support any more)
  165.     *  the file system will rebuild itself as you use it (IF you use it)
  166.        but this should be transparent
  167.  
  168.  
  169. (5) FREQUENTLY ASKED QUESTIONS
  170.  
  171.     1. WHAT DO I DO IF I GET THE ERROR "USER FILE NOT FOUND"?
  172.  
  173.        (1) Run eggdrop with the "-m" option (ie, "eggdrop -m mybot").
  174.        (2) Go to IRC and send "hello" to your bot (ie, "/msg mybot hello").
  175.        (3) You will become a master on your bot.  You can leave the bot
  176.            running (nobody else will become a master if they say "hello"),
  177.            but in the future, don't use the "-m" option when running the bot.
  178.  
  179.     2. MY EGGDROP WON'T RUN; IT JUST SAYS "CAN'T FIND YOUR HOSTNAME!"
  180.  
  181.        Your machine is set up strangely, and eggdrop can't figure out its 
  182.        network hostname.  You can get around this by setting an environment
  183.        variable called HOSTNAME.  In sh or ksh:
  184.          $ HOSTNAME=myhost.domain.edu
  185.          $ export HOSTNAME
  186.        In csh or tcsh:
  187.          % setenv HOSTNAME myhost.domain.edu
  188.        It should work after that.  You may want to bug your system admini-
  189.        strator to set up her /etc/hosts file correctly, or add those above
  190.        commands to your '.login' file (sh or ksh: '.profile').
  191.  
  192.     3. WHAT THE HECK IS TCL?
  193.  
  194.        Tcl is a scripting language written by John Ousterhout.  It's much 
  195.        better than most "in-built" script langauges (like the one in ircII)
  196.        and is meant to be linked with anything needing a script langauge.  
  197.        So I linked it with eggdrop.
  198.  
  199.        The file "tcl-commands.doc" in the eggdrop directory contains a list
  200.        of the commands added to Tcl by eggdrop.  Another file, "lamestbot",
  201.        is a script file meant to be executed from the command line.  It starts
  202.        up an eggdrop bot called "LamestBot" which sits on channel #lamest.
  203.        There are also several example scripts in the script/ directory, and
  204.        there are gobs of scripts floating around on the ftp sites if you
  205.        like working by example (which is typically the best way).
  206.  
  207.     4. MY USER LIST IS VERY LARGE.  HOW CAN I CUT IT DOWN?
  208.  
  209.        There is a Tcl script called "weed" distributed with eggdrop.  To use 
  210.        it, type:
  211.          tclsh weed
  212.        It will give you a list of options for weeding out your userlist.  You
  213.        can erase users who haven't been on the channel within a specified
  214.        number of days, or erase any ops who haven't set a password yet, etc.
  215.        Lots of options.
  216.  
  217.     5. MY BOT DIES AND THE LAST ENTRY IN THE LOGFILE IS "RECEIVED TERMINATE
  218.        SIGNAL".  WHAT DOES THAT MEAN AND CAN I PREVENT IT?
  219.  
  220.        There's nothing you can do to prevent it.  It means the system admini-
  221.        stator is killing the eggdrop process.  Most of the time, it's an
  222.        automatic thing that happens when the system is being rebooted -- so
  223.        it's harmless, and if you have a crontab running, the bot will get
  224.        restarted when the system is back online.  Occassionally the system
  225.        administrator will kill the bot manually -- for example, if he/she
  226.        doesn't want bots running on the system.
  227.  
  228.     6. MY COMPILE DIES AT THE LAST MINUTE WITH "LD FATAL SIGNAL 11"!
  229.  
  230.        This happens on Linux machines which have recently been converted
  231.        to ELF by upgrading to Slackware 3.0.  Apparently Slackware 3.0
  232.        comes with a non-ELF (a.out) Tcl library, and the compiler doesn't
  233.        handle that well.  (It should give you an error; instead it barfs.)
  234.        Fixing it is tricky because even if you recompile libtcl.a, the
  235.        linker will most likely find the "bad" one first, and your work
  236.        will be in vain.
  237.  
  238.        Here's a fix that's been floating around on the eggdrop list:
  239.        1. Recompile 'libtcl.a' for yourself, to make sure an ELF library
  240.           is created.
  241.        2. Copy it into your eggdrop/src directory, naming it 'libtcl2.a'.
  242.        3. Edit the Makefile and change the line that says '-L/usr/lib -ltcl'
  243.           to '-L. -ltcl2'.
  244.        4. Recompile eggdrop.
  245.  
  246.        Also send hate-mail to the Slackware guy telling him to stop fucking
  247.        up the libraries.  He seemed to assume that everyone would still
  248.        want to compile old-style (a.out) binaries.  As far as I know, only
  249.        cruddy old Netscape still uses that.
  250.  
  251.     7. SOMEONE ELSE SET UP A BOT I DON'T LIKE.  ARE THERE ANY BACKDOORS I
  252.        CAN USE TO TAKE THEIR BOT DOWN?
  253.  
  254.        No, there have never been any backdoors and there never will be,
  255.        so please stop asking.  Every once in a while, someone finds a way
  256.        to exploit a bug in eggdrop, but I fix these bugs as soon as I find
  257.        out about them.  If you want to bring down someone else's bot, you
  258.        will not have my help.
  259.  
  260.  
  261. (6) SETTING UP A CRONTAB
  262.  
  263.     Eggdrop has become more stable with time, thanks mostly to people detail-
  264.     ing bugs to me and helping me find places where it crashes.  However, I'm
  265.     sure there are still a few places where things aren't perfect -- that's
  266.     how life works.  Also, most systems go down from time to time.  These 
  267.     things cause your bot to disappear from IRC, and you have to restart it.
  268.  
  269.     I have included a csh script called 'botchk' which will help keep the bot
  270.     online.  It will make the machine check every ten minutes to make sure
  271.     your bot is still running.  To use it, you have to add a line to your
  272.     crontab.  First, edit 'botchk' and change the directory and command line
  273.     parameters so that it will be able to start up your bot.  Then, add this
  274.     line to your crontab:
  275.  
  276.     0,10,20,30,40,50 * * * *   /home/mydir/botchk
  277.  
  278.     Naturally, you need to change the path to the correct path for botchk.  If
  279.     you've never used crontab before, here is a simple way to add that line:
  280.     Create a new file called 'mycron' and put the above line into it.  Then,
  281.     from your shell prompt, type
  282.       % crontab mycron
  283.     That will create a new crontab entry for you, with a line that runs botchk
  284.     every ten minutes.  Botchk will then restart the bot when necessary (and
  285.     send you email informing you).
  286.  
  287.  
  288. (7) BORING LEGAL STUFF
  289.  
  290.     The eggdrop bot is copyright (c) by Robey Pointer.  As of January 1997,
  291.     eggdrop is distributed according to the GNU General Public License.
  292.     There should be a copy of this license in the file COPYING.  If not,
  293.     write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge,
  294.     MA 02139, USA.
  295.  
  296.     Releases previous to 1.0m were made using a different licensing scheme.
  297.     You may, at your option, use the GNU General Public License on those
  298.     versions (instead of the license packaged with them) with my blessing.
  299.     For any versions bearing a copyright date of 1997 or later, you have
  300.     no choice -- you must use the GNU General Public License.
  301.  
  302.     The files "match.c", "net.c", and "blowfish.c" are exempt from the above
  303.     restrictions.  "match.c" is original code by Chris Fuller (email:
  304.     crf@cfox.bchs.uh.edu) and has been placed by him into the public domain.
  305.     "net.c" is by me and I also choose to place it in the public domain.
  306.     "blowfish.c" is by various sources and is in the public domain.  All 3
  307.     files contain useful functions that could easily be ported to other
  308.     applications -- the other parts of the bot generally don't.
  309.  
  310.     Tcl is by John Ousterhout and is in no way affiliated with eggdrop,
  311.     and has its own set of copyrights and whatnots, I'm sure.
  312.  
  313.     There is no warranty, implied or whatever.  You use this software at
  314.     your own risk, no matter what purpose you put it to.  You didn't pay
  315.     for it, so don't expect magic.
  316.  
  317.  
  318. (8) MAILING LIST
  319.  
  320.     Yes, there is a mailing list.  The address has changed recently,
  321.     though, and (thank the heavens) I don't have to maintain it any more.
  322.     To subscribe, send email to:
  323.        majordomo@sodre.net
  324.     In the body of the message, put "subscribe eggdrop".
  325.  
  326.     I tend to get a lot of mail about this thing, so please don't flood
  327.     my mailbox.  However if you have something urgent and private to tell
  328.     me, I can be reached at
  329.        robey@netcom.com
  330.  
  331.     WARNING: If you send me private email about something that they've
  332.     discussed on the mailing list, I'll probably just delete it.  So don't
  333.     ask me simple questions that waste my time, that probably anyone on
  334.     the mailing list could answer.  There are a lot of people on there
  335.     who have used the bot for a year or more, and know almost as much
  336.     about the bot as I do.  (Some of them probably know more...)
  337.  
  338.  
  339. (9) DOCUMENTATION
  340.  
  341.     I've been trying hard to keep the online documentation (in the help/
  342.     directory) fairly up-to-date.  It should be complete now; you can browse
  343.     through there for some handy tips.  Please let me know if you find any
  344.     help files that are incorrect or confusing!
  345.  
  346.     I know that a unified documentation would REALLY BE HELPFUL.  All I can
  347.     say is...  I've been pretty busy.  I just graduated in December and I've
  348.     spent the past several months getting settled into the bay area, getting
  349.     a job, etc.  So I haven't even had much time to keep updating the bot.
  350.     But I AM working on it, bit by bit.  Stage one was finishing the online
  351.     docs.  Now I'm slowly adding bits to the unified documentation. 
  352.  
  353.     I have seven sections written so far, and I'm not sure how helpful
  354.     they are, but you can find them in "eggdrop.doc" for now.  Comments and
  355.     suggestions would be welcome!
  356.  
  357.  
  358. This is the end.  Wow.  Someone actually read this far.
  359.